package com.wxyzz.canteenadmin.goods.goodsType.service.impl;


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wxyzz.canteenadmin.goods.goodsType.mapper.GoodsTypeMapper;
import com.wxyzz.canteenadmin.goods.goodsType.param.GoodsTypeDataParam;
import com.wxyzz.canteenadmin.goods.goodsType.param.GoodsTypeVueParam;
import com.wxyzz.canteenadmin.goods.goodsType.service.GoodsTypeService;
import com.wxyzz.canteencommon.exception.CustmerException;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class GoodsTypeServiceImpl implements GoodsTypeService {
    @Resource
    private GoodsTypeMapper goodsTypeMapper;
//查询  展示所有的数据，分页，模糊查询
    @Override
    public PageInfo<GoodsTypeDataParam> selectAllGoodsType(GoodsTypeVueParam goodsTypeVueParam) {
        PageHelper.startPage(goodsTypeVueParam.getPageNum(),goodsTypeVueParam.getPageSize());
        List<GoodsTypeDataParam> goodsTypeDataParams = goodsTypeMapper.selectAllGoodsType(goodsTypeVueParam);
        PageInfo<GoodsTypeDataParam> goodsTypeDataParamPageInfo = new PageInfo<>(goodsTypeDataParams);
        return goodsTypeDataParamPageInfo;
    }
//添加  添加商品分类信息
    @Override
    public void saveGoodsType(GoodsTypeVueParam goodsTypeVueParam) {
        if(goodsTypeVueParam.getSortName()==null){
            throw new CustmerException("请输入分类名称，分类名称不能为空！");}
        if(goodsTypeVueParam.getBelongingStoreId()==null){
            throw new CustmerException("请选择所属店铺，所属店铺不能为空！");}
        if(goodsTypeVueParam.getFounder()==null){
            throw new CustmerException("请输入菜品创始人，菜品创始人不能为空！");}
        if(goodsTypeVueParam.getCreateTime()==null){
            throw new CustmerException("请选择创建时间，创建时间不能为空！");}
        if(goodsTypeVueParam.getShowStatus()==null){
            throw new CustmerException("请选择展示状态，展示状态不能为空！");}
        if(goodsTypeVueParam.getRemark()==null){
            throw new CustmerException("请输入备注信息，备注信息不能为空！");}

        goodsTypeMapper.insertGoodsType(goodsTypeVueParam);
    }
//修改  在修改前先通过id进行查询展示当前行的信息
    @Override
    public GoodsTypeDataParam findGoodsTypeById(int id) {
        GoodsTypeDataParam goodsTypeById = goodsTypeMapper.findGoodsTypeById(id);
        return goodsTypeById;
    }
//修改  修改商品分类信息
    @Override
    public void updateGoodsType(GoodsTypeVueParam goodsTypeVueParam) {
        goodsTypeMapper.updateGoodsType(goodsTypeVueParam);
    }
//删除  根据当前行的Id删除
    @Override
    public void delGoodsTypeById(int id) {
        goodsTypeMapper.delGoodsTypeById(id);
    }
//删除 批量删除
    @Override
    public void delBatchGoodsTypeById(List<Integer> ids) {
        goodsTypeMapper.delBatchGoodsTypeById(ids);
    }
//添加和修改的时候 返回个前端所有的创始人
    @Override
    public List<GoodsTypeDataParam> findAllFounder() {
        List<GoodsTypeDataParam> founders = goodsTypeMapper.selectAllFounder();
        return founders;
    }
//添加和修改的时候 返回个前端所有的商品分类
    @Override
    public List<GoodsTypeDataParam> findAllSortName() {
        List<GoodsTypeDataParam> goodsTypeDataParams = goodsTypeMapper.selectAllSortName();
        return goodsTypeDataParams;
    }
}
